package com.easylinkin.linkappapi.lobar.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.easylinkin.linkappapi.common.model.RequestModel;
import com.easylinkin.linkappapi.lobar.dto.LaborRegionDTO;
import com.easylinkin.linkappapi.lobar.dto.region.UserRegionDTO;
import com.easylinkin.linkappapi.lobar.dto.screen.LobarScreenDTO;
import com.easylinkin.linkappapi.lobar.entity.LaborRegion;
import com.baomidou.mybatisplus.extension.service.IService;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 区域坐标表 服务类
 * </p>
 *
 * @author kanyuanfeng
 * @since 2022-04-13
 */
public interface LaborRegionService extends IService<LaborRegion> {

  IPage<LaborRegion> queryListByPage(RequestModel<LaborRegion> requestModel);

  /**
   * 增加
   * @param laborRegionDTO
   */
  void insert(LaborRegionDTO laborRegionDTO);

  /**
   * 根据id编辑
   * @param laborRegionDTO
   */
  void updateOne(LaborRegionDTO laborRegionDTO);

  LaborRegionDTO findById(Long id);

  /**
   * 在场人数(施工区,办公区,生活区)
   * @param userWorkType 人员类型 1:作业人员 2:管理人员
   */
  List<LobarScreenDTO> onNum(Integer userWorkType) throws IOException;

  /**
   * 人员分类统计
   * type有值表示需要过滤，取分包单位数据
   */
  Map<String,List<LobarScreenDTO>> groupNum(Integer userWorkType) throws IOException;

  /**
   * 人员坐标上传
   */
  void insertRegion(UserRegionDTO userRegionDTO) throws IOException;

  /**
   * 人员坐标获取
   */
  List<UserRegionDTO> getRegions() throws IOException;

  List<LaborRegionDTO> queryList();

  List<LaborRegionDTO> queryListByTenantId(String tenantId);
}
